class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}

public class Solution {
    public void deleteNode(ListNode node) {
        // 将下一个节点的值赋给当前节点
        node.val = node.next.val;
        // 跳过下一个节点
        node.next = node.next.next;
    }

    public static void main(String[] args) {
        // 创建链表：1 -> 2 -> 3 -> 4
        ListNode head = new ListNode(1);
        head.next = new ListNode(2);
        head.next.next = new ListNode(3);
        head.next.next.next = new ListNode(4);

        // 输出原始链表
        System.out.print("原始链表: ");
        printList(head);

        // 删除节点值为2的节点（实际上是删除节点值为3的节点）
        Solution solution = new Solution();
        solution.deleteNode(head.next); // 删除节点2（实际上是删除节点3）

        // 输出删除节点后的链表
        System.out.print("删除节点后的链表: ");
        printList(head);
    }

    // 辅助方法：打印链表
    public static void printList(ListNode head) {
        ListNode current = head;
        while (current != null) {
            System.out.print(current.val + " -> ");
            current = current.next;
        }
        System.out.println("null");
    }
}